package ace.cmp.asserts.api;

import java.util.Collection;
import java.util.Map;
import java.util.function.Supplier;

/**
 * @author caspar
 * @date 2023/8/10 9:04 断言
 */
public interface AssertService {
  void isTrue(boolean value, Supplier<RuntimeException> supplier);

  void isTrue(boolean value, String messageTemplate, String... args);

  void isTrue(boolean value, String message);

  void isFalse(boolean value, Supplier<RuntimeException> supplier);

  void isFalse(boolean value, String messageTemplate, String... args);

  void isFalse(boolean value, String message);

  void isNull(Object value, Supplier<RuntimeException> supplier);

  void isNull(Object value, String messageTemplate, String... args);

  void isNull(Object value, String message);

  void isNotNull(Object value, Supplier<RuntimeException> supplier);

  void isNotNull(Object value, String messageTemplate, String... args);

  void isNotNull(Object value, String message);

  void isEmpty(String value, Supplier<RuntimeException> supplier);

  void isEmpty(String value, String message);

  void isEmpty(String value, String messageTemplate, String... args);

  void isEmpty(Collection value, Supplier<RuntimeException> supplier);

  void isEmpty(Collection value, String message);

  void isEmpty(Collection value, String messageTemplate, String... args);

  void isEmpty(Map value, Supplier<RuntimeException> supplier);

  void isEmpty(Map value, String message);

  void isEmpty(Map value, String messageTemplate, String... args);
}
